package dancetwotiktokenumsmymongo

const (
	DancePetChangeTypeAdd     = 1 //增加
	DancePetChangeTypeReduced = 2 //减少

	// 宠物获取记录
	DancePetGainLogSourceOpenEgg             = 1 //开宠物蛋获得
	DancePetGainLogSourcePetCollectAllReward = 2 //宠物集齐奖励获得

	DancePetAttributeResetDay         = 1 // 每日恢复
	DancePetAttributeResetActivityEnd = 2 // 活动结束重置

	// 主播战队状态
	DanceTeamHostStatusCreate   = 1 //创建
	DanceTeamHostStatusDissolve = 2 //解散

	// 个人战队状态
	DanceTeamUserStatusCreate   = 1 //加入
	DanceTeamUserStatusDissolve = 2 //退出

	// 宠物上阵,下阵状态
	DancePetEnterPositionStatusUp   = 1 //上阵
	DancePetEnterPositionStatusDown = 2 //下阵

	// 宠物属性流转记录枚举
	DancePetPropertyChangeLogSourceEatProp         = 1 // 吃丹药获得
	DancePetPropertyChangeLogSourceWeekScript      = 2 // 每周脚本重置获得
	DancePetPropertyChangeLogSourceSlgAttackCity   = 3 // 攻城消耗扣减
	DancePetPropertyChangeLogSourceGainPetInit     = 4 // 获得宠物默认初始值
	DancePetPropertyChangeLogSourceRoomGift        = 5 // 直播间刷礼物获得
	DancePetPropertyChangeLogSourceMinuteScriptCut = 6 // 每分钟脚本扣减
)

type DancePetGainLogEnums struct {
}

var DancePetGainLogEnumsObject DancePetGainLogEnums

func (e DancePetGainLogEnums) SourceType() []int {
	return []int{
		DancePetGainLogSourceOpenEgg,
		DancePetGainLogSourcePetCollectAllReward,
	}
}

func (e DancePetGainLogEnums) SourceMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.SourceType() {
		m[s] = e.SourceString(s)
	}
	return m
}

func (e DancePetGainLogEnums) SourceString(tag int) string {
	switch tag {
	case DancePetGainLogSourceOpenEgg:
		return "开宠物蛋获得"
	case DancePetGainLogSourcePetCollectAllReward:
		return "宠物集齐奖励获得"
	default:
		return "其他"
	}
}

func (e DancePetGainLogEnums) ChangeType() []int {
	return []int{
		DancePetChangeTypeAdd,
		DancePetChangeTypeReduced,
	}
}

func (e DancePetGainLogEnums) ChangeTypeMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ChangeType() {
		m[s] = e.ChangeTypeString(s)
	}
	return m
}

func (e DancePetGainLogEnums) ChangeTypeString(tag int) string {
	switch tag {
	case DancePetChangeTypeAdd:
		return "增加"
	case DancePetChangeTypeReduced:
		return "减少"
	default:
		return "其他"
	}
}

func (e DancePetGainLogEnums) DancePetPropertyChangeLogSourceType() []int {
	return []int{
		DancePetPropertyChangeLogSourceEatProp,
		DancePetPropertyChangeLogSourceWeekScript,
		DancePetPropertyChangeLogSourceSlgAttackCity,
		DancePetPropertyChangeLogSourceGainPetInit,
		DancePetPropertyChangeLogSourceRoomGift,
		DancePetPropertyChangeLogSourceMinuteScriptCut,
	}
}

func (e DancePetGainLogEnums) DancePetPropertyChangeLogSourceTypeMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.DancePetPropertyChangeLogSourceType() {
		m[s] = e.DancePetPropertyChangeLogSourceTypeString(s)
	}
	return m
}

func (e DancePetGainLogEnums) DancePetPropertyChangeLogSourceTypeString(tag int) string {
	switch tag {
	case DancePetPropertyChangeLogSourceEatProp:
		return "吃丹药获得"
	case DancePetPropertyChangeLogSourceWeekScript:
		return "每周脚本重置获得"
	case DancePetPropertyChangeLogSourceSlgAttackCity:
		return "攻城消耗扣减"
	case DancePetPropertyChangeLogSourceGainPetInit:
		return "获得宠物默认初始值"
	case DancePetPropertyChangeLogSourceRoomGift:
		return "直播间刷礼物获得"
	case DancePetPropertyChangeLogSourceMinuteScriptCut:
		return "每分钟脚本扣减"
	default:
		return "其他"
	}
}
